// 打印扑克牌案例

// 定义花色
type Color = '♥' | '♠' | '♦' | '♣'

// 定义每张扑克牌类型
type NormalCard = {
  color: Color,
  mark: number
}
// 定义一个扑克牌数组
type Deck = NormalCard[]

// 创建一副扑克
function createDeck(): Deck {
  const deck: Deck = []
  for(let i = 1; i <= 13; i++) {
    deck.push({
      color: '♣',
      mark: i,
    })
    deck.push({
      color: '♠',
      mark: i,
    })
    deck.push({
      color: '♦',
      mark: i,
    })
    deck.push({
      color: '♥',
      mark: i,
    })
  }
  return deck
}
// 打印一副扑克
function printDeck(deck: Deck) {
  let str:string = ''
  deck.forEach((item, idx) => {
    if(item.mark <= 10) {
      str += item.color + item.mark + '\t'
    }else if(item.mark === 11) {
      str += item.color + 'J' + '\t'
    }else if(item.mark === 12) {
      str += item.color + 'Q' + '\t'
    }else {
      str += item.color + 'K' + '\t'
    }

    if((idx + 1) % 4 === 0) {
      str += '\n'
    }
  })
  console.log(str)
}

const deck = createDeck()
printDeck(deck)